1. Field of the Invention
The present invention relates generally to memory allocation and particularly to a technique for dynamically brokering memory resources.
2. Background Art
Computer systems use memory devices to store system software, application programs, and the data being processed. Usage of the memory space provided by the memory devices is allocated to different processes operating on a computer system. However, at times the memory usage increases beyond the limits of the memory resources available on a computer system. Consequently, memory management software has been developed that reorganizes memory space to effectively increase the amount of available memory space. Different memory management programs use different techniques to optimize memory usage and recover otherwise wasted memory space. Unfortunately, these different memory management programs are often mutually incompatible.
Furthermore, application programs that obtain additional memory space from these memory management programs sometimes have to be specifically programmed to interact with particular memory management programs and may not be compatible with all of the available memory management programs. Therefore, it may be difficult or impossible to obtain the benefits of several different types of memory management software simultaneously.
In the past, memory management software typically reorganized memory space initially to obtain effectively more memory space, then left the memory space in its reorganized form. The result was a memory configuration that remained static and was unable to adapt to further changes in memory availability and usage. Consequently, not all memory that could possibly be utilized was made available to be utilized. Furthermore, memory space that was only temporarily available could not be utilized since no means was provided to communicate and control the unavailability of the memory space after its temporary availability had ended.